package cn.tedu.store.user.webapi.mapper;

import cn.tedu.store.commons.pojo.user.dto.UserRegistryDTO;
import cn.tedu.store.commons.pojo.user.entity.User;
import cn.tedu.store.commons.pojo.user.vo.UserLoginInfoVO;
import cn.tedu.store.commons.pojo.user.vo.UserStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户信息mapper
 *
 * @author RelentlessFlow
 * @version 0.0.1
 */
@Repository
public interface UserMapper {

    /**
     * 添加用户
     * @param user 用户信息
     * @return 受影响行数
     */
    int insert(User user);

    /**
     * 删除用户
     * @param ids 用户id数组
     * @return 受影响行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改用户信息
     * @param user 新的用户信息
     * @return 受影响行数
     */
    int updateById(User user);

    int countByUsername(String username);
    int countByPhone(String phone);

    int countByEmail(String email);

    long getIdByUsername(String username);

    /**
     * 根据id获取详细信息
     * @param id 用户id
     * @return 详情
     */
    UserStandardVO getStandardById(Long id);

    /**
     * 获取用户列表
     * @return 用户列表
     */
    List<UserStandardVO> list();

    /**
     * 根据用户名获取登录信息
     * @param username 用户名
     * @return 用户信息
     */
    UserLoginInfoVO getLoginInfoByUsername(String username);

    UserLoginInfoVO getLoginInfoByPhone(String phone);
}
